#pragma once
#include "opencv2/highgui.hpp"
#include "opencv2/opencv.hpp"
#include "src/TGPolygon.h"
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>

#define White cv::Scalar(255, 255, 255)
#define Blue   cv::Scalar(225, 0, 0)
#define Green cv::Scalar(0, 255, 0)
#define Red  cv::Scalar(0, 0, 255)

/*
默认窗口大小为1000*1000，
生成点的范围也是在[0,900] * [0, 900]
*/

//随机生成含有n个点
void generateRandomPolygon(int n, cv::RNG &, TGPolygon &polygon);

//随机生成含有n点的集合
void generateRandomPointSet(int n, cv::RNG &, std::vector<TGPoint> &dst);

//绘制多边形
void drawPolygon(cv::Mat &img, TGPolygon &polygon, const cv::Scalar &color,
                 bool fill);

//绘制点集
void drawPoints(cv::Mat &img, const cv::Scalar &color,
                std::vector<TGPoint> &points);
